package com.foreknow.demo22;

/**
 * 订单类
 */
public class Order {
    private String orderId;//订单的编号
    private double total;//总额：需要计算,所以不应该写到构造器中初始化
    private OrderItem[] items;//订单列表

    public Order(String orderId) {
        this.orderId = orderId;
        this.items = new OrderItem[3];
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public double getTotal() {
        //调用计算总额的方法
        calTotal();
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }

    public OrderItem[] getItems() {
        return items;
    }

    /**
     * 指定一个订单项OrderItem并通过下标保存到数组中
     * @param item
     * @param i
     */
    public void setItems(OrderItem item,int i) {
        this.items[i] = item;
    }

    /**
     * 计算总额的方法
     * 总额 = 数量*单价
     */
    public void calTotal() {
        double total = 0;
        //1.要先遍历数组items，每遍历一次就要获取到数组中的一个OrderItem对象，然后就可以获取到数量以及单价了。
        for(int i = 0;i<items.length;i++){
            total+=items[i].getNum()*items[i].getPrice();
        }
        //2.要将总额赋值给类变量total
        this.total = total;
    }
}